package cn.topevery.garden.entity.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.topevery.garden.entity.po.GreFile;
import cn.topevery.garden.entity.serializer.GeometrySerializer;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

/**
 *  视图
 *
 * @author code-generate
 * @date 2022-01-05
 */
@Data
@ApiModel(value = "ParkComponent 视图", description = " 视图")
public class ParkComponentVO implements Serializable{
    /**
     * 自增id
     */
    private Integer id;

        /**
     * 编号
     */
    @ApiModelProperty(value = "编号")
    @Excel(name = "编号", orderNum = "0")
    private String code;

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    @Excel(name = "名称", orderNum = "0")
    private String name;

    /**
     * 类型:gs1:绿地护栏,
     */
    @ApiModelProperty(value = "类型:gs1:绿地护栏,")
    @Excel(name = "类型:gs1:绿地护栏,", orderNum = "0")
    private String componentType;

    /**
     * 面积(平方米）
     */
    @ApiModelProperty(value = "面积(平方米）")
    @Excel(name = "面积(平方米）", orderNum = "0")
    private Double measure;

    /**
     * 公园类型
     */
    @ApiModelProperty(value = "公园类型")
    @Excel(name = "公园类型", orderNum = "0")
    private String type;

    /**
     * 地点描述
     */
    @ApiModelProperty(value = "地点描述")
    @Excel(name = "地点描述", orderNum = "0")
    private String address;

    /**
     * 计算空间数据
     */
    @ApiModelProperty(value = "计算空间数据")
    @Excel(name = "计算空间数据", orderNum = "0")
    private String geoWkt;

    /**
     * 区域Id
     */
    @ApiModelProperty(value = "区域Id")
    @Excel(name = "区域Id", orderNum = "0")
    private String distractId;

    /**
     * 区域
     */
    @ApiModelProperty(value = "区域")
    @Excel(name = "区域", orderNum = "0")
    private String distractName;

    /**
     * 街道Id
     */
    @ApiModelProperty(value = "街道Id")
    @Excel(name = "街道Id", orderNum = "0")
    private String streetId;

    /**
     * 街道名称
     */
    @ApiModelProperty(value = "街道名称")
    @Excel(name = "街道名称", orderNum = "0")
    private String streetName;

    /**
     * 街道Id
     */
    @ApiModelProperty(value = "街道Id")
    @Excel(name = "街道Id", orderNum = "0")
    private String communityId;

    /**
     * 街道名称
     */
    @ApiModelProperty(value = "街道名称")
    @Excel(name = "街道名称", orderNum = "0")
    private String communityName;

    /**
     * 图片地址
     */
    @ApiModelProperty(value = "图片地址")
    @Excel(name = "图片地址", orderNum = "0")
    private String fileUrl;

    /**
     * 管理单位
     */
    @ApiModelProperty(value = "管理单位")
    @Excel(name = "管理单位", orderNum = "0")
    private String management;

    /**
     * 建设时间
     */
    @ApiModelProperty(value = "建设时间")
    @Excel(name = "建设时间", orderNum = "0")
    private LocalDate date;

    /**
     * 百度经度
     */
    @ApiModelProperty(value = "百度经度")
    @Excel(name = "百度经度", orderNum = "0")
    private Double baiduX;

    /**
     * 百度维度
     */
    @ApiModelProperty(value = "百度维度")
    @Excel(name = "百度维度", orderNum = "0")
    private Double baiduY;

    /**
     * 图层名称
     */
    @ApiModelProperty(value = "图层名称")
    @Excel(name = "图层名称", orderNum = "0")
    private String objName;

    /**
     * 材质
     */
    @ApiModelProperty(value = "材质")
    @Excel(name = "材质", orderNum = "0")
    private String material;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注", orderNum = "0")
    private String note;

    @ApiModelProperty(value = "附件")
    private List<GreFile> fileList;

    @ApiModelProperty(value = "范围")
    @Excel(name = "范围", orderNum = "0")
    @JSONField(serializeUsing = GeometrySerializer.class, deserializeUsing = GeometrySerializer.class)
    private Geometry mapRanges;

}
